Prerequisites
Boole's algebra; binary numbering systems; basic programming skills
Objectives
- Identify the fundamental computer architecture components and their roles. - Identify the main processor's components and their role. - Identify the different instruction types and the required mechanisms for their execution (at an introductory-level). - Understand how a program, written in a high-level language, is executed, including the role of the compiler, assembler, and loader. - Write simple programs in Assembly language. - Understand the underlying principals of interruptions/exceptions and the interface with processor peripherals. - Understand the importance of a hierarchical memory subsystem and its role in the performance of applications. - Identify the advantages and drawbacks stemming from the evolution of computers with respect to the original architecture.
Program
- Historical evolution of computing systems. - Instruction Set Architectures: operands and operation types; memory map; peripherals interface; handling of interruptions and exceptions. - Processors' operation: datapath; control structures; single-cycle and pipelined architectures. - Memory hierarchy: structure and operation of cache memories; hierarchical cache systems; physical and virtual addressing and translation. - Advances in computer architectures.
Evaluation Methodology
50% avaliação contínua; 50% avaliação não contínua
Cross-Competence Component
The curricular unit covers the development of transversal competences in Critical and Innovative Thinking, Interpersonal and Intrapersonal Competences (oral, organizational and teamwork, self-discipline, perseverance, self-motivation) and Information and media literacy (ability to locate and access information) in the laboratory component. The grading weight associated with these skills is of around 10%.
Laboratorial Component
The curricular unit involves weekly laboratory work aiming at the monitoring and deepening of the topics taught in theoretical lectures. The evaluation of the laboratory work comprises the demonstration of the performed work, the reports, and the discussion.
Programming and Computing Component
The Computer Architecture discipline comprehends competences in the programming and computing domains, namely through: Assembly programming; the principles of program translation (compilation) from a high-level language to assembly and machine code; the loading of programs; the interface with peripherals; handling of interruptions and exceptions; the impact of the memory subsystem in an application performance and the basic principles of cache-aware programming. These competencies are evaluated through laboratory work (percentage >80%) and the final exam (percentage >50%).
More information at: https://fenix.tecnico.ulisboa.pt/cursos/lerc/disciplina-curricular/845953938490009